The present invention relates to the field of data transfer in the form of asynchronous packets in radio or cable communication networks. When packets are transferred asynchronously, there is a risk of congestion at the network nodes if the instantaneous flowrate of incoming packets exceeds the maximum throughput capacity of the multiplex. In this context, the invention concerns more specificallyxe2x80x94but not exclusivelyxe2x80x94a protocol for managing such congestions in buffers which multiplex network connections known as AAL2 (ATM (asynchronous transfer mode) adaptation layer 2) connections.
AAL2 is used amongst others in UTRAN (UMTS (universal mobile telecommunication system) terrestrial radio access network). UTRAN is the terrestrial radio access network for UMTS. UMTS constitutes the third generation mobile system (3GPP) defined by the standardisation organisation.
The AAL2 protocol and its implementation in data transmission systems are well established and are now standardised for example in the publication by the International Telecommunication Union Telecommunication Standardization Sector (ITU-T), Recommendation I366.1 (June 1998) entitled xe2x80x9cSeries I: Segmentation and Reassembly Service Specific Convergence Sublayer for the AAL type 2xe2x80x3 and, also from ITU-T, recommendation I.363.2 entitled xe2x80x9cB-ISDN ATM Adaptation layer type 2 Specificationxe2x80x9d whose contents are considered as included in the state of the art.
FIG. 1 is a schematic diagram showing an example of part of a communication network linking a core network (CN) to two controllers (RNCs) which are themselves connected to base stations referred to as Node B. By analogy, a Node B is equivalent to a base transceiver station (BTS) in the GSM system. The Node B and RNC are connected together by an interface known as Iub (interface UMTS bis, equivalent to the Abis interface of the GSM). The RNC is connected to the core network CN via an interface Iu (UMTS interface).
The RNCs are connected together by an interface Iur (UMTS interface between two RNCs). These interfaces are based on ATM. ATM is used as a transport layer for the Iu, Iur and Iub interfaces.
Interfaces Iur and Iub receive radio frames or multiple radio frames. At radio level, frames have a 10 ms duration. The time interval between frame transmissions on the Iub and Ur interfaces is typically 10 ms, 20 ms, 40 ms or 80 ms (respectively equivalent to 1, 2, 4 or 8 radio frames).
UMTS serves to transport data and voice, and possibly several other types of service, some of which can have a baud rate of up to 2 Mbits/s.
The transport of data shall be illustrated with an example of a message containing voice at a baud rate of 8 kbits/s. Accordingly, to send frames every 10 ms, 80 bits or 10 octets will be used. Sending voice frames every 20 ms requires 160 bits, or 20 octets (bytes) With a data service at 144 Kbits/s, frames can be formed in groups of four or eight. Transmission time intervals are generally 40 or 80 ms. For 80 ms frames, 1440 octets per frame will be available on the Iub interface. With 40 ms frames, 720 octets will be available per frame on the Iub interface.
The ATM system uses cells of 53 octets (bytes): 5 octets for connection identification information and 48 octets forming the payload.
Information (for example the above-mentioned 10 or 1440 octets) must therefore be transported by ATM cells each having 48 octets available.
To this end, an ATM adaptation layer is used, namely the AAL2. This adaptation layer comprises a number of sub-layers: a service specific segmentation and reassembly sublayer (SSSAR) forming part of SEG-SSCS (optional) which allows data packets exceeding 45 octets to be segmented. Another sublayer, known as the common part sublayer (CPS), allows the SSSAR service data units (SDUs) to be multiplexed into the payload of an ATM cell (the payload of the ATM cell is always 48 octets).
FIG. 2 is a diagram showing the different AAL2 sublayers and the ATM layer which come into play when a frame is sent on the Iub or Iur interface. Right at the bottom of the figure are shown the ATM cells comprising the 48 octet payload plus a 5 octet header.
The figure is based on an example of a 150 octet long AAL2 SDU frame which is shown as the topmost layer in the figure. The service specific convergence sublayer (SSCS) used is the SEG-SSCS (segmentation and reassembly service specific convergence sublayer). In the example, it is reduced to the service specific segmentation and reassembly (SSSAR) sublayer. SSSAR SDU frames thus have the same length as AAL2 SDU frames. This length can change over time and depends on the baud rate, the amount of data to be transported, etc. . . .
Two AAL2 layers shall be of interest in the present case: the mandatory common part sublayer (CPS) and the segmentation and reassembly service specific convergence sublayer (SEG-SSCS), which is an optional segmentation and reassembly layer.
As its name indicates, the SSSAR will segment (and reassemble) the SSSAR SDUs (in the present case 1 AAL2 SDU=1 SSSAR SDU) into packets referred to as SSSAR protocol data units PDUs whose maximum size by default is 45 octets. Consequently, the 150-octet AAL2 SDU of the example can be divided up into three 45-octet SSSAR PDUs and the 15 remaining octets can be loaded into a fourth SSSAR PDU.
The SSSAR PDUs are then transferred to the mandatory common part sublayer (CPS), keeping the condition that one SSSAR PDU corresponds to one CPS SDU as regards the format and in particular the number of constitutive octets.
The CPS layer multiplexes the CPS SDUs it receives on 48 octets that form the ATM cell payload.
To this end, the CPS layer will add a 3 octet header to each CPS SDU it receives for identification of each CPS SDU.
These three octets, which are shown in FIG. 3, comprise:
a 5 bit error correction field HEC;
an 8 bit CID field which identifies the AAL2 connection number, i.e. the channel user AAAL2 CPS;
a 6 bit LI field which indicates the payload length minus one of the CPS packet. The maximum length of the CPS packet is 45 octets by default, but this value can be increased to 64 octets by signalling;
a 5 bit UUI (user-to-user interface) field. For SEG SSCS, a CPS-UUI is used to implement a xe2x80x9cMore Dataxe2x80x9d bit. A UUI value equal to xe2x80x9c27xe2x80x9d indicates that more data are required to complete the reassembly of an SSSAR-SDU. A value equal xe2x80x9c26xe2x80x9d indicates the reception of the last data of an SSSAR SDU. Any other value, i.e. between 0 and 26 should not be used for reasons of compatibility with other SSCS specifications.
Thus, in the case of a segmentation, the UUI field has the value xe2x80x9c26xe2x80x9d to indicate receipt of an end of SSSAR SDU (150 octets in the example), and the value xe2x80x9c27xe2x80x9d to indicate that more data follows.
In other words, all the while UUI field yields xe2x80x9c27xe2x80x9d, the received packets are incomplete and as soon as it yields xe2x80x9c26xe2x80x9d, the packets can be reassembled and will belong to a given SSSAR SDU.
In a classical installation, if the SSSAR detects errors during reassembly of an SSSAR SDU, the complete CPS SDU must be discarded.
These three octets are found again in the CPS packet header.
In the case of only one CPS PDU, there is also a CPS-PDU start field (STF) octet which serves to identify the position of the first CPS packet inside the payload of the ATM cell or CPS PDU.
A CPS PDU corresponds to the payload of an ATM cell.
The size of CPS PDU is always equal to 48 octets (equal to an ATM cell payload). The first CPS PDU octet is always the STF octet. The 47 remaining octets are either CPS packet octets or padding.
Note that in the case where the CPS SDU is 45 octets, the CPS packet has a size of 45+3=48 octets.
Accordingly, the first 47 octets can be inserted into one CPS PDU. The last remaining octet shall go into another CPS PDU.
Thus upon multiplexing CPS SDUs into CPS PDUs, a straddling is created at the level of the payload. As shown in FIG. 2, the 45 payload octets of CPS SDU number 1 are divided on two CPS PDUs, with 44 octets in the first CPS PDU (thus filling up entirely the payload of that packet) and the remaining octet in the following CPS PDU. This octet is located directly after the STF octet of the following CPS PDU.
It will be understood that the second CPS PDU can dispose of only 43 octets for multiplexing the second CPS SDU. Consequently, the last two octets of that second CPS SDU shall be integrated in the third CPS PDU, just after the STF of the latter.
Thus the STF octet for the CPS PDU will indicate that the start of the first CPS packet is located immediately after the STF octet. For the second CPS PDU, the STF octet will indicate that the start of the second packet is located as from the second octet, and for the third CPS PDU, the STF octet will indicate that the start of the third CPS packet will be located as from the third octet.
As shown in FIG. 2, the fourth CPS PDU comprises the STF octet followed by the three remaining octets of the third CPS SDU, followed by its own 3 octet header and all the 15 octets of the fourth CPS SDU, i.e. a total of 22 octets. This fourth CPS PDU thus disposes of 26 free octets in its payload.
In the example, these 26 octets are partially exploited for multiplexing the following AAL2 SDU which, as shown in the top line of FIG. 2, comprises only 20 octets. This AAL2 SDU can e.g. correspond to another connection for sampling voice at 20 ms.
As for the first 150 octet AAL SDU, this 20 octet AAL SDU is converted in the form of a CPS SDU (only one single packet in this case) comprising the above-mentioned 3 octet header plus 20 payload octets, forming a total of 23 octets. This CPS packet can be integrally contained in the fourth CPS PDU which disposes of 26 free octets. The 3 unused octets of this fourth CPS PDU are filled with padding octets devoid of any information.
The thus-multiplexed CPS PDUs are then transferred to the ATM layer via the ATM service access point (SAP), The ATM layer comprises ATM cells which are each composed of a 5 octet header and a 48 octet payload. A CPS PDU can thus be integrally contained in the payload of an ATM cell.
In practice, CPS packets are stored in buffers before being transposed into corresponding ATM cells via the intermediate multiplexing into CPS PDUs. Indeed, the information arrives at the buffers asynchronously and some non-negligible processing time is required to transform the CPS packets into CPS PDUs. It is thus possible to receive at a given moment more information in the form of CPS packets than can be transferred on the interface. This is the reason why the packets must be buffered.
The arrival of CPS packets into a buffer for the case of FIG. 2 is shown schematically in FIG. 4. The top portion of the figure shows the 5 CPS packets stored provisionally according to a FIFO principle. These packets are sent synchronously to a unit (not shown) whose function is to transform them into CPS PDUs as explained above to create the payloads for the corresponding ATM cells.
Now, in UMTS, the incoming load at the level of the buffers to form ATM cells can be very temporarily greater than 1. In other words, there occurs the situation in which more CPS packets arrive than can be multiplexed and outputted in ATM cells. A momentary overload can then occur. If this overload situation lasts for too long, the buffers can overflow, and CPS packets can hence be lost.
In the state of the art, when the buffers are full, the incoming packets have to be discarded in a random manner, without taking their origin into account. Generally speaking, there is no appropriate management of the buffers and the packets that cause the buffer to overflow are systematically discarded all the while the latter is full. As a result, a number of AAL2 SDU blocks can be unnecessarily destroyed.
In view of these problems, the present invention proposes a method of managing data packets originating from data frames, the packets being presented to buffer means prior to processing, wherein, when a packet corresponding to the start of a frame is presented to the buffer stage, it is determined whether the filling level of the buffer means exceeds a first predetermined filling threshold corresponding to a state of congestion and, if such is the case, this packet and all packets belonging to that same frame are systematically discarded before the buffer.
The method according to the invention lends itself particularly well to the above-mentioned AAL2 connections, in which case the frames in question originate from AAL2 connections, and each constitute a respective ATM (asynchronous transfer mode) adaptation layer service data unit (AAL2 SDU), and the packets are common part sublayer (CPS) packets, and the buffer means stores the CPS packets before the latter are multiplexed into asynchronous transfer mode (ATM) cells. In order not to destroy a frame (corresponding e.g. to an AAL2 SDU) in the course of being stored in a buffer, if the first threshold is exceeded, packets are still allowed to enter into the buffer means but only if the packets on the one hand follow a first packet admitted into the buffer means prior to the first threshold being exceeded and on the other hand originate from the same frame as that first packet.
Various different criteria can be contemplated for determining the buffer""s threshold level of congestion. In a preferred embodiment, the state of congestion is attained upon exceeding the first threshold and the state of congestion is left by passing below a second filling threshold of the buffer means, the second threshold being lower than the first threshold. Consequently, the congestion criterion exhibits a hysteresis effect.
According to a first embodiment of the invention, the first threshold is set such that the remaining capacity of the memory upon exceeding that threshold is substantially sufficient to accept all remaining packets of a frame whose first packet has been accepted into the buffer means. In this way, no frame in the course of being loaded into the buffer can be lost.
In the case of AAL2 connections, a mechanism can be set up in which:
for each CPS packet, the user-to-user interface (UUI) field is used to determine if the packet is the last CPS packet forming an ATM (asynchronous transfer mode) adaptation layer type 2 (AAL2) service data unit (SDU) and, if such is the case, to determine the following common part sublayer (CPS) packet as a first packet;
in the case of a first CPS packet of an AAL2 service data unit (SDU) frame, it is detected if the buffer means are in a state of congestion;
in the case of a congestion, the first CPS packet and all the following CPS packets are discarded up to and including the CPS packet for which it is detected that the UUI field of that CPS packet corresponds to the last CPS packet of the current AAL2 SDU frame.
Moreover, it is possible to proceed such that:
for each CPS packet, the user-to-user interface (UUI) field is used to determine if the packet is the last CPS packet forming an AAL2 SDU and, if such is the case, to determine the following CPS packet as a first packet;
in the case of a first CPS packet of an AAL2 SDU frame, it is detected if the buffer means are in a state of congestion;
if the buffer means are not in a state of congestion the first CPS packet and all the CPS packets that follow are accepted into said buffer means up to and including the one for which it is detected that the UUI field of that CPS packet corresponds to the last packet of the current AAL2 SDU frame.
The mechanism can also operate so that:
for each CPS packet, the user-to-user interface (UUI) field is used to determine if the packet is the last CPS packet forming an AAL2 SDU and, if such is the case, to determine the following CPS packet as a first packet;
in the case of a first CPS packet of an AAL2 SDU frame, it is detected if the buffer means are in a state of congestion;
if the buffer means are not in a state of congestion said first CPS packet is accepted into the buffer means and, for each following CPS packet belonging the same AAL2 SDU frame as the first packet, the packet is accepted only if said buffer means are not in a state of saturation.
In the case of an AAL2 data transmission system, the data frame would be an entire AAL2 SDU and hence the CPS packets belonging to that AAL2 SDU would be systematically discarded in case of congestion.
In other words, when a congestion situation occurs in the case of AAL2 connections, the packet discard mechanism in brought into action to eliminate intelligently all CPS packets of an entire AAL2 SDU, instead of only certain packets from each AAL2-SDU.
Indeed, if one or several CPS packets of an AAL2 SDU are lost, the entire AAL2 SDU is lost. In this case according to the invention all the AAL2 SDUs which would in any be lost are discarded. In so doing, space is cleared in the memory by allowing the latter to discharge during the packet discarding process.
Still in the case of an AAL2 communication system, the selective elimination can be advantageously achieved by exploiting the UUI field of the above mentioned CPS packet header, this field indicating the receipt of the last data of an SSSAR SDU frame, whose length is equivalent to that of a corresponding AAL2 SDU.
In this case, a mechanism in accordance with the invention can be implemented to determine the value of the UUI field: if the congestion threshold is reached, the mechanism allows entry of all the remaining packets of an AAL2 SDU already started to be admitted prior to the congestion threshold being reached if the following packets have a UUI field equal to 27. When the value 26 is detected for that field, it is established that the CPS packet is the last one for the current AAL2 SDU. It is thus also admitted into the buffer. However, the next packet, which will have the value 27 (or 26 if it contains the entire AAL SDU) at the level of its UUI field shall be discarded. The same applies to the packets of the same AAL2 SDU that follow, the latter being identified by the value 27 at the level of their UUI field, except for the last one which will have the value 26 for that field.
Preferably, the packet destruction step is effected before the buffer becomes completely saturated so that it is still possible to continue to accept CPS packets of a current frame and only to discard CPS packets of the next frame, knowing that a data frame has a limited maximum length, this length being e.g. 65 568 octets long in the case of an AAL2 SDU connection.
In order to manage the possible congestion and overflow conditions of the buffer efficiently, the method advantageously operates so that:
for each incoming CPS packet, the Length Indicator field (LI) of the CPS Packet header is read to determine the length of the arriving CPS Packet;
the thus determined length of the arriving CPS packet is used to update a buffer occupancy counter which is configured to store at least one amongst:
i) the instantaneous number of octets used in the buffer for a given AAL2 connection;
ii) the instantaneous number of octets used in the buffer for a given group of AAL2 connections;
iii) the instantaneous number of octets used in the buffer by all AAL2 connections stored therein.
The present invention also relates to a device for managing data packets originating from data frames, the CPS packets being presented to buffer means prior to processing, comprising:
packet analysing means for analysing if a CPS packet presented to said buffer means is a first CPS packet of a frame;
means for determining whether the filling level of the buffer means exceeds a first predetermined filling threshold corresponding to a state of congestion and,
means active when the filling level of said buffer means exceeds the first threshold to discard systematically before the buffer this first CPS packet of a frame and all following CPS packets belonging to that same frame.
The device can moreover be configured to implement all the process steps defined above and in the method claims.
It can be centred around a processor operating from a program in accordance with a classical computer architecture. In the case of an AAL2 connection, the processor can be assimilated to the general processing means which manage communications and the buffer which receives the CPS packets.